#include <stdio.h>
#include <stdarg.h>

#include "eoutput.h"

extern int nbLines ;

static int G_NbErrors = 0 ;
static int G_NbWarnings = 0 ;

/* Retourne le nombre d'erreurs. */
int getNbErrors () {
    return G_NbErrors ;
}

/* Affiche une information de debug sur la sortie CC_STDDBG. */
void newDebug (char *info, ...) {
    va_list list ;
    va_start(list, info); 
    fprintf(CC_STDDBG, "Debug line %d: ", nbLines+1) ;
    vfprintf(CC_STDDBG, info, list) ;
    fprintf(CC_STDDBG, "\n") ;
    va_end(list) ;
}

/* Affiche une erreur sur la sortie CC_STDERR. */
void newError (char *info, ...) {
    va_list list ;
    G_NbErrors ++ ;
    va_start(list, info); 
    fprintf(CC_STDERR, "Error line %d: ", nbLines+1) ;
    vfprintf(CC_STDERR, info, list) ;
    fprintf(CC_STDERR, "\n") ;
    va_end(list) ;
}

/* Affiche un warning sur la sortie CC_STDWAR. */
void newWarning (char *info, ...) {
    va_list list ;
    G_NbWarnings ++ ;
    va_start(list, info); 
    fprintf(CC_STDWAR, "Warning line %d: ", nbLines+1) ;
    vfprintf(CC_STDWAR, info, list) ;
    fprintf(CC_STDWAR, "\n") ;
    va_end(list) ;
}
